package com.gk.guinyote;

import java.util.Arrays;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;


public class GuinyoteActivity extends Activity {
	/** Called when the activity is first created. */
	final int FACTOR_ESCALA = 5;
    LinearLayout llt,llb,llr,lll;
    RelativeLayout lm;
	int recurso;
	int numJugadas = 0;
	Boolean[] jugadasRealizadas;
	Jugada[] jugadas;
	Partida p;
	
	
	public void mostrarTurno(){
		Toast toast = Toast.makeText(this.getApplicationContext(), p.getJugadorActual().toString(), Toast.LENGTH_LONG);
		toast.show();
	}
	
	public Bitmap rotarBitmap(Bitmap original, int grados){
		Bitmap rotated;
		Matrix matrix = new Matrix();
		matrix.postRotate(grados);
		rotated = Bitmap.createBitmap(original, 0, 0, 
		                              original.getWidth(), original.getHeight(), 
		                              matrix, true);
		return rotated;
	}
	
	public void dibujaMano(LinearLayout layout){
		Bitmap bm;
		ImageView imv;
		String nombreRecurso;
		for (int i=0; i<6; i++){
			nombreRecurso = p.getJugadorActual().getMano().get(i).getPalo() + "_" + p.getJugadorActual().getMano().get(i).getNumero();
			Log.d("NombreCarta",nombreRecurso);
			recurso = this.getResources().getIdentifier(nombreRecurso, "drawable", "com.gk.guinyote");
			bm = BitmapFactory.decodeResource(this.getResources(), recurso);
			bm = Bitmap.createScaledBitmap(bm, bm.getWidth()/FACTOR_ESCALA, bm.getHeight()/FACTOR_ESCALA, true);
			imv = new ImageView(this);
			imv.setId((p.getJugadorActual().getId()*100)+i);
			imv.setImageBitmap(bm);
			imv.setPadding(1, 1, 1, 1);
			layout.addView(imv);
			imv.setOnClickListener(new OnClickListener() {
				
				public void onClick(View v) {
					int id = v.getId();
					Log.d("Clic",Integer.toString(id));
					if( jugadasRealizadas[p.getIdJugador()] == false ){
						jugadas[numJugadas] = new Jugada(p.getJugadorActual(), p.getJugadorActual().getMano().get(id-(100*p.getIdJugador())));
						numJugadas++;
						jugadasRealizadas[p.getIdJugador()] = true;
						Log.d("Jugada", p.getJugadorActual().toString() + " juega " + p.getJugadorActual().getMano().get(id-(100*p.getIdJugador())));

					}
				}

			});
		}
	}
	
	
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Intent myIntent = new Intent("com.gk.guinyote.PruebaActivity");
		startActivity(myIntent);
		
		llb = (LinearLayout) findViewById(R.id.layout_main_bot);
		llt = (LinearLayout) findViewById(R.id.layout_main_top);
		llr = (LinearLayout) findViewById(R.id.layout_right);
		lll = (LinearLayout) findViewById(R.id.layout_left);
		lm = (RelativeLayout) findViewById(R.id.layout_mid);
		jugadas =  new Jugada[4];
		jugadasRealizadas = new Boolean[4];
		Arrays.fill(jugadasRealizadas, false);
		p = new Partida();	
		p.comenzarPartida();
		p.setIdJugador(0);
		dibujaMano(llb);
		/*
		 Cartas en mano
		for(int i=0;i<4;i++){
			for (int j=0;j<6;j++)
				Log.d("Cartas",p.getJugadorById(i).toString() + " tiene " + p.getJugadorById(i).getMano().get(j).toString());
		}
		*/
		/*Juega la primera carta
		int c = 0;
		for(int i=0; i<4; i++){
			jugadas[i] = new Jugada(p.getJugadorById(i),p.getJugadorById(i).getMano().get(c));
		}
		Jugada ganadora = new Jugada(p.resuelveTurno(jugadas));
		
		 */
		

	}	
}